package com.bsoft.gol.hcs.his.bean.request;

import hcn.base.Device;
import com.bsoft.gol.hcs.his.bean.vo.MsgVariable;

import javax.smartcardio.Card;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
import java.util.List;
import java.util.Map;

/**
 * @description:推送消息类
 * @author: zhengcb10708
 * @create: 2020-11-09 15:40
 **/
public class PushMessageRequest {
    //uid和fid是内部调用的时候手动set的，第三方系统调用理论上不会出现
    private Long uid;

    /**
     * 消息接收者的用户id
     */
    private String userId;

    private String name;

    private Long fid;

    private String hospitalCode;

    @NotNull(message = "传入roleId不能为空！")
    private String roleId;
    //消息类型，对应NotificationEvent.notificateType 枚举类名称
    private String notificateType;

    //短信类型名称，对应SmsServiceType类，枚举名称
    private String smsserviceType;

    //用户手机号，多个手机号按照“,”隔开
    private String mobile;

    private String docJobNumber;

    private String[] doctorIds;

    private List<String> tenantIds;

    private String tenantId;

    private String patientIdentityCardType;

    private String patientIdentityCardNumber;

    private Integer patientMedicalCardType;

    private String patientMedicalCardNumber;

    private String patientCode;

    private String msgId;

    private List<MsgVariable> msgVariableList;

    private Map<String, String> extras;

    private Map<String, String>  MsgVariableMap;
    //发送设备列表
    private List<Device> deviceList;

    private String[] mpiIds;

    private String msgTitle;
    //模板编码
    private String templateCode;

   // private Certificate[] certificates;

    private Card[] cards;

    private String affairType;
    private long businessKey;

    private String msgServiceType;

    private String outAppType;

    private String url;
    private Map<String, String> miniprogram;
   // private AppIdTypeEnum typeEnum;
    private String appId;

    public String getRoleId() {
        return roleId;
    }

    public void setRoleId(String roleId) {
        this.roleId = roleId;
    }

    public String getNotificateType() {
        return notificateType;
    }

    public void setNotificateType(String notificateType) {
        this.notificateType = notificateType;
    }

    public String[] getDoctorIds() {
        return doctorIds;
    }

    public void setDoctorIds(String[] doctorIds) {
        this.doctorIds = doctorIds;
    }

    public List<String> getTenantIds() {
        return tenantIds;
    }

    public void setTenantIds(List<String> tenantIds) {
        this.tenantIds = tenantIds;
    }

    public String getTenantId() {
        return tenantId;
    }

    public void setTenantId(String tenantId) {
        this.tenantId = tenantId;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public Long getUid() {
        return uid;
    }

    public void setUid(Long uid) {
        this.uid = uid;
    }

    public Long getFid() {
        return fid;
    }

    public void setFid(Long fid) {
        this.fid = fid;
    }

    public String getHospitalCode() {
        return hospitalCode;
    }

    public void setHospitalCode(String hospitalCode) {
        this.hospitalCode = hospitalCode;
    }

    public String getDocJobNumber() {
        return docJobNumber;
    }

    public void setDocJobNumber(String docJobNumber) {
        this.docJobNumber = docJobNumber;
    }

    public String getPatientIdentityCardType() {
        return patientIdentityCardType;
    }

    public void setPatientIdentityCardType(String patientIdentityCardType) {
        this.patientIdentityCardType = patientIdentityCardType;
    }

    public String getPatientIdentityCardNumber() {
        return patientIdentityCardNumber;
    }

    public void setPatientIdentityCardNumber(String patientIdentityCardNumber) {
        this.patientIdentityCardNumber = patientIdentityCardNumber;
    }

    public Integer getPatientMedicalCardType() {
        return patientMedicalCardType;
    }

    public void setPatientMedicalCardType(Integer patientMedicalCardType) {
        this.patientMedicalCardType = patientMedicalCardType;
    }

    public String getPatientMedicalCardNumber() {
        return patientMedicalCardNumber;
    }

    public void setPatientMedicalCardNumber(String patientMedicalCardNumber) {
        this.patientMedicalCardNumber = patientMedicalCardNumber;
    }

    public String getPatientCode() {
        return patientCode;
    }

    public void setPatientCode(String patientCode) {
        this.patientCode = patientCode;
    }

    public String getMsgId() {
        return msgId;
    }

    public void setMsgId(String msgId) {
        this.msgId = msgId;
    }

    public List<MsgVariable> getMsgVariableList() {
        return msgVariableList;
    }

    public void setMsgVariableList(List<MsgVariable> msgVariableList) {
        this.msgVariableList = msgVariableList;
    }

    public Map<String, String> getExtras() {
        return extras;
    }

    public void setExtras(Map<String, String> extras) {
        this.extras = extras;
    }

    public Map<String, String> getMsgVariableMap() {
        return MsgVariableMap;
    }

    public void setMsgVariableMap(Map<String, String> msgVariableMap) {
        MsgVariableMap = msgVariableMap;
    }

    public String getSmsserviceType() {
        return smsserviceType;
    }

    public void setSmsserviceType(String smsserviceType) {
        this.smsserviceType = smsserviceType;
    }

    public List<Device> getDeviceList() {
        return deviceList;
    }

    public void setDeviceList(List<Device> deviceList) {
        this.deviceList = deviceList;
    }

    public String[] getMpiIds() {
        return mpiIds;
    }

    public void setMpiIds(String[] mpiIds) {
        this.mpiIds = mpiIds;
    }

    public String getMsgTitle() {
        return msgTitle;
    }

    public void setMsgTitle(String msgTitle) {
        this.msgTitle = msgTitle;
    }

    public String getTemplateCode() {
        return templateCode;
    }

    public void setTemplateCode(String templateCode) {
        this.templateCode = templateCode;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

   /* public Certificate[] getCertificates() {
        return certificates;
    }

    public void setCertificates(Certificate[] certificates) {
        this.certificates = certificates;
    }
*/
    public Card[] getCards() {
        return cards;
    }

    public void setCards(Card[] cards) {
        this.cards = cards;
    }

    public String getAffairType() {
        return affairType;
    }

    public void setAffairType(String affairType) {
        this.affairType = affairType;
    }

    public long getBusinessKey() {
        return businessKey;
    }

    public void setBusinessKey(long businessKey) {
        this.businessKey = businessKey;
    }

    public String getMsgServiceType() {
        return msgServiceType;
    }

    public void setMsgServiceType(String msgServiceType) {
        this.msgServiceType = msgServiceType;
    }

    public String getOutAppType() {
        return outAppType;
    }

    public void setOutAppType(String outAppType) {
        this.outAppType = outAppType;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public Map<String, String> getMiniprogram() {
        return miniprogram;
    }

    public void setMiniprogram(Map<String, String> miniprogram) {
        this.miniprogram = miniprogram;
    }

    /*public AppIdTypeEnum getTypeEnum() {
        return typeEnum;
    }

    public void setTypeEnum(AppIdTypeEnum typeEnum) {
        this.typeEnum = typeEnum;
    }*/

    public String getAppId() {
        return appId;
    }

    public void setAppId(String appId) {
        this.appId = appId;
    }

    @Override
    public String toString() {
        return "PushMessageRequest{" +
                "uid=" + uid +
                ", userId='" + userId + '\'' +
                ", name='" + name + '\'' +
                ", fid=" + fid +
                ", hospitalCode='" + hospitalCode + '\'' +
                ", roleId='" + roleId + '\'' +
                ", notificateType='" + notificateType + '\'' +
                ", smsserviceType='" + smsserviceType + '\'' +
                ", mobile='" + mobile + '\'' +
                ", docJobNumber='" + docJobNumber + '\'' +
                ", doctorIds=" + Arrays.toString(doctorIds) +
                ", tenantIds=" + tenantIds +
                ", tenantId='" + tenantId + '\'' +
                ", patientIdentityCardType='" + patientIdentityCardType + '\'' +
                ", patientIdentityCardNumber='" + patientIdentityCardNumber + '\'' +
                ", patientMedicalCardType=" + patientMedicalCardType +
                ", patientMedicalCardNumber='" + patientMedicalCardNumber + '\'' +
                ", patientCode='" + patientCode + '\'' +
                ", msgId='" + msgId + '\'' +
                ", msgVariableList=" + msgVariableList +
                ", extras=" + extras +
                ", MsgVariableMap=" + MsgVariableMap +
                ", deviceList=" + deviceList +
                ", mpiIds=" + Arrays.toString(mpiIds) +
                ", msgTitle='" + msgTitle + '\'' +
                ", templateCode='" + templateCode + '\'' +
                ", cards=" + Arrays.toString(cards) +
                ", affairType='" + affairType + '\'' +
                ", businessKey=" + businessKey +
                ", msgServiceType='" + msgServiceType + '\'' +
                ", outAppType='" + outAppType + '\'' +
                ", url='" + url + '\'' +
                ", miniprogram=" + miniprogram +
                ", appId='" + appId + '\'' +
                '}';
    }
}
